class test {
    public static double Kr = 10.0;
    public static double Km = 10.0;
    public static double Kp = 10.0;
    public static double gm = 1.0;
    public static double gp = 1.0;
    public static double gdi = 1.0;
    public static double Kdi= 0.05;
    public static double Kudi = 0.05;
    public static double Kbind = 1.0;
    public static double Kunbind = 1.0;

    public static double G = 1;
    public static double M = 0;
    public static double P = 0;
    public static double D = 0;
    public static double R = 0;

    public static void step(double h) {
	double dG = -Kbind*G*D + Kbind*R;
	double dM = Km*G - gm*M +Kr*R;
	double dP = Kp*M - gp*P - 2*Kdi*P*P + 2*Kudi*D;
	double dD = Kdi*P*P - gdi*D + Kunbind*R - Kbind*G*D;
	double dR = Kbind*G*D - Kunbind*R;

	G += h*dG;
	M += h*dM;
	P += h*dP;
	D += h*dD;
	R += h*dR;
    }

    public static void print(double time) {
	System.out.println("" + time + " " + G + " " + M + " " + P + " " + D + " " + R);
    }

    public static void main(String args[]) throws Exception {
	double stepsize = Double.parseDouble(args[0]);
	double time = 0.0;
	for(int i=0; i<1000000; i++) {
	    print(time);
	    step(stepsize);
	    time += stepsize;
	}
    }
}